package com.xjh.basestudy.designmode.behaviorMode.behaviorMode11_Interpreter;

import java.util.List;

/**
 * @Author XuJianHua
 * @Date 2022/10/6 23:26
 * @Description 表达式序列
 *
 * ，在一个循环体内有时会包含一系列的表达式，并且它们一定是有序的，这样才能确保逻辑正确性。如代码清单24-9所示，表达式序列Sequence同样实现了表达式接口。
 * 作为非终极表达式，我们在第3行定义了一个表达式列表List<Expression>，以此保证多个子表达式的顺序，并在第5行的构造方法中将其传入，保证其灵活性。
 * 最后，我们在第9行的解释方法interpret()中，按顺序依次对所有子表达式进行了调用。至此，所有脚本中用到的表达式都已经定义完毕，我们可以开始组装和执行表达式了
 *

 */
public class Sequence implements Expression {

    private List<Expression> expressions; // 表达式列表

    public Sequence(List<Expression> expressions) {
        this.expressions = expressions;
    }

    public void interpret() {
        expressions.forEach(exp -> exp.interpret());
    }

}
